/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package Estacionamento.Negocio;

import Estacionamento.ClassesBasicas.Cliente;
import Estacionamento.ClassesBasicas.EntradaSaida;
import Estacionamento.DAOEspecifico.DAOCliente;
import Estacionamento.DAOEspecifico.DAOEntradaSaida;
import java.util.Calendar;
import static java.util.Collections.list;
import java.util.Date;
import java.util.List;
import javax.swing.JOptionPane;

/**
 *
 * @author Italo Valença
 */
public class EntradaSaidaNegocio {

    public void cadastrarEntradaSaida(EntradaSaida entSai) throws Exception {
        DAOEntradaSaida info = new DAOEntradaSaida();
        EntradaSaida entrada = new EntradaSaida();
        entrada = null;
        List<EntradaSaida> listasDeEntradasSaidas = info.listar();
        for (EntradaSaida listaDeEntradaSaida : listasDeEntradasSaidas) {
            if ((listaDeEntradaSaida.getCliente().getCpf() == entSai.getCliente().getCpf()) && (listaDeEntradaSaida.getSaida() == null)) {
                entrada = listaDeEntradaSaida;
                JOptionPane.showMessageDialog(null, "Entrada já realizada");
            }
        }
        if (entrada == null) {
            info.cadastrar(entSai);
            JOptionPane.showMessageDialog(null, "Entrada realizada com sucesso");
        }
    }

    public List<EntradaSaida> listarEntradaSaidaTodos() throws Exception {
        DAOEntradaSaida info = new DAOEntradaSaida();
        List<EntradaSaida> listaDeEntradaSaida = info.listar();
        return listaDeEntradaSaida;
    }

    public List<EntradaSaida> listarEntradaSaidaCliente(String cpf) throws Exception {
        DAOEntradaSaida info = new DAOEntradaSaida();
        DAOCliente infoCli = new DAOCliente();
        Cliente cliente = new Cliente();
        List<EntradaSaida> entradasSaidasCliente = null;
        List<EntradaSaida> listasEntradasSaidas = info.listar();
        for (int i = 0; i < listasEntradasSaidas.size(); i++) {
            if (listasEntradasSaidas.get(i).getCliente().getCpf().equals(cpf)) {
                entradasSaidasCliente.add(listasEntradasSaidas.get(i));
            }
        }
        return entradasSaidasCliente;
    }

    public EntradaSaida listarUltimaEntradaSaidaCliente(String cpf) throws Exception {
        DAOEntradaSaida info = new DAOEntradaSaida();
        EntradaSaida ultimaEntrada = new EntradaSaida();
        List<EntradaSaida> listasEntradasSaidas = info.listar();
        for (int i = 0; i < listasEntradasSaidas.size(); i++) {
            if (listasEntradasSaidas.get(i).getCliente().getCpf().equals(cpf)) {
                ultimaEntrada = listasEntradasSaidas.get(i);
            }
        }
        return ultimaEntrada;
    }

    public void alterarEntradaSaida(EntradaSaida saida) throws Exception {
        DAOEntradaSaida info = new DAOEntradaSaida();
        info.alterar(saida);
        JOptionPane.showMessageDialog(null, "Saída realizada");
    }
}
